
/**
 * 
 * 封装:
 * 封装的本质是把抽象出来的属性和对方法组合在一起,只对外暴露指定的接口，
 * 且属性值被保护在内部, 只有通过接口进行修改和读取，不用考虑内部如何实现。
 * 函数就是最基础的代码封装形式，面向对象思想中的封装仍以函数为基础
 */
namespace _2{

class Persion {
    private _name:string=""
    age:number=1
    protected sex:number =1
    get name(){
        return `get ${this._name} `
    }
    set name(v:string){
        this._name = v
    }
    getName(){
        return this._name
    }
    setName(v:string){
        this._name = v
    }
}
class HuaHua extends Persion{
    constructor(name:string,age:number){
        super()
        this.age = age
        this.name = name
    }
    getSex():number{
        return this.sex
    }
}

let persion = new Persion()
persion.age
persion.name
let huaHua = new HuaHua("花花",18)
console.log(huaHua.getSex())

}
